#ifndef __LV_FILTER_H__
#define __LV_FILTER_H__

#include "include.h"

#define LV_GET_TS()     _nop()  //获取时间戳
#define TS_EN           0

typedef struct{
    u8 coe;         //滤波系数
    u8 amp;         //基础数据放大
    // u16 input;      //输入数值
    u16 output;     //输出数值
    u32 sum;        //累加数值

    #if TS_EN
        u8 cnt_dt;      //采样时间超时累计器
        u16 TS_max;     //滤波超时最大值，超时后滤波数据重置成当前数据
        u16 TS_pre;     //当前时间戳
        u16 TS_ls;      //上一次时间戳
    #endif
}_lv_filter;

void lv_filter_init(_lv_filter *filter, u16 value, u8 coe);
void lv_filter_reset(_lv_filter *filter, u16 value);
void lv_filter_set_coe(_lv_filter *filter, u8 coe);
void lv_filter_loop(_lv_filter *filter);

#endif


